﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Ferreteria.Forms
{
    public partial class frmEditarMultiplesArticulos : Form
    {
        private DataGridViewSelectedRowCollection articulosEditar;
        DisancoEntities context;

        public frmEditarMultiplesArticulos(DataGridViewSelectedRowCollection filasEditar)
        {
            InitializeComponent();
            context = new DisancoEntities(Ferreteria.Clases.Constantes.cadenaConexion);
            articulosEditar = filasEditar;
            NumUpDowBonific.Enabled = !NumUpDowBonific.Enabled;  
        }

        private void btnGuardar_Click(object sender, EventArgs e)
        {
            try
            {
                foreach (DataGridViewRow fila in articulosEditar)
                {
                    int artId = (int)fila.Cells["art_id"].Value;

                    Articulos articulo = context.Articulos.FirstOrDefault(a => a.art_id == artId);
                    
                    //Se actualiza el descuento si esta marcado     
                    if (ckbDescuento.Checked)
                    {
                        articulo.art_bonificacion = NumUpDowBonific.Value / 100;
                    }

                    //Se actualiza la fecha de inicio si esta marcada
                    if (ckbFechaInicio.Checked)
                    {
                        articulo.art_bonif_fecha_ini = dtpFechaInicio.Value;
                    }

                    if (ckbFechaFin.Checked)
                    {
                        articulo.art_bonif_fecha_fin = dtpFechaFin.Value;
                    }

                    if (ckbStockMinimo.Checked)
                    {
                        articulo.art_stock_minimo = Convert.ToInt32(numStockMinimo.Value);
                    }                    
                }
                context.SaveChanges();
                MessageBox.Show("Datos actualizados correctamente", "Operacion Exitosa", MessageBoxButtons.OK, MessageBoxIcon.Information);
                this.Close();
            }
            catch (Exception err)
            {
                MessageBox.Show(err.Message);
            }
        }

        private void ckbFechaInicio_CheckedChanged(object sender, EventArgs e)
        {
            dtpFechaInicio.Enabled = !dtpFechaInicio.Enabled;
        }

        private void ckbStockMinimo_CheckedChanged(object sender, EventArgs e)
        {
            numStockMinimo.Enabled = ckbStockMinimo.Checked;
        }

        private void ckbFechaFin_CheckedChanged(object sender, EventArgs e)
        {
            dtpFechaFin.Enabled = !dtpFechaFin.Enabled;
        }

        private void ckbDescuento_CheckedChanged(object sender, EventArgs e)
        {
            NumUpDowBonific.Enabled = ckbDescuento.Checked;
        }

        private void btnCancelar_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void numStockMinimo_ValueChanged(object sender, EventArgs e)
        {

        }
    }
}
